package cn.tedu.tmall.front.account.service;

import cn.tedu.tmall.common.consts.data.AccountConsts;
import cn.tedu.tmall.common.pojo.authentication.CurrentPrincipal;
import cn.tedu.tmall.front.account.pojo.param.UserUpdateInfoParam;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public interface IUserService extends AccountConsts {

    /**
     * 修改密码
     *
     * @param currentPrincipal 当事人
     * @param oldPassword      原密码
     * @param newPassword      新密码
     */
    void updatePassword(CurrentPrincipal currentPrincipal, String oldPassword, String newPassword);

    /**
     * 修改头像
     *
     * @param currentPrincipal 当事人
     * @param avatar           新头像的URL
     */
    void updateAvatar(CurrentPrincipal currentPrincipal, String avatar);

    /**
     * 修改基本信息
     *
     * @param currentPrincipal    当事人
     * @param userUpdateInfoParam 新的基本信息
     */
    void updateInfo(CurrentPrincipal currentPrincipal, UserUpdateInfoParam userUpdateInfoParam);
}
